package com.doitedu.day03.funcs

import scala.collection.mutable
import scala.io.Source

/**
 * @Date 22.6.22
 * @Created by HANGGE
 * @Description
 */
object _06FlattenMap方法03 {
  def main(args: Array[String]): Unit = {

    val lines = Source.fromFile("E://words.txt").getLines()
    // 文件中所有的单词   map + flatten
    val words: Iterator[String] = lines.flatMap(_.split("\\s+"))
    val ls = words.toList.map(_.toLowerCase)
    // 按照单词本身的值 分组  ,相同的单词分到一组
    // 组  组内的所有的单词  a  [a,a,a,a,a]
    val res: Map[String, List[String]] = ls.groupBy(e => e)
    val res2  = res.map(tp => {
      val word = tp._1
      val cnt = tp._2.size
      (word, cnt)
    }).toList.sortBy(-_._2)
    res2.foreach(println)

  /*  val grouped = words.grouped(3)
    grouped.foreach(println)*/

    
    
    /*// 统计单词的次数  [借助了Map集合的特点]
    // Java实现*/
  }
}
